﻿SmitearWebGL._regNS( "SmitearWebGL.Core" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Algorithm" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Animation" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Math" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Structure" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Interactive" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Geometry" );
SmitearWebGL._regNS( "SmitearWebGL.Core.Render" );
SmitearWebGL._regNS( "SmitearWebGL.Renderer" );
SmitearWebGL._regNS( "SmitearWebGL.Programs" );
SmitearWebGL._regNS( "SmitearWebGL.Programs.DeferredShading" );
SmitearWebGL._regNS( "SmitearWebGL.Programs.LightPrePass" );
SmitearWebGL._regNS( "SmitearWebGL.Programs.LightPrePass.Terrain" );
SmitearWebGL._regNS( "SmitearWebGL.Programs.Hdr" );
SmitearWebGL._regNS( "SmitearWebGL.Events" );
SmitearWebGL._regNS( "SmitearWebGL.IO" );
SmitearWebGL._regNS( "SmitearWebGL.Global" );
SmitearWebGL._regNS( "SmitearWebGL.Objects" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Primitive" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Terrain" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Canvas" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Canvas.DeferredShading" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Canvas.LightPrePass" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Canvas.Hdr" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.External" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Parser" );
SmitearWebGL._regNS( "SmitearWebGL.Objects.Parser.Collada" );
SmitearWebGL._regNS( "SmitearWebGL.Resources" );
SmitearWebGL._regNS( "SmitearWebGL.Scene" );
SmitearWebGL._regNS( "SmitearWebGL.Utils" );

$ERROR = function(){}
$WARNING = function(){}
$LOG = function(){}
$DEBUG = function(){}
$ASSERT = function(){}
$THROW = function(){}

// debug
if ( window.console )
{
	SmitearWebGL.console = window.console;
	
	$ERROR = function( err )
	{
		SmitearWebGL.console.error( err );
	}
	
	$WARNING = function( warnning )
	{
		SmitearWebGL.console.warn( warnning );
	}
	
	$LOG = function( log )
	{
		SmitearWebGL.console.log( log );
	}
	
	$DEBUG = function( debug )
	{
		SmitearWebGL.console.debug( debug );
	}
	
	$ASSERT = function( x, assert )
	{
		SmitearWebGL.console.assert( x, assert );
	}
	
	$THROW = function( x, assert )
	{
		if ( !x ) throw new Error( assert );
	}
}

//end debug

function $import( namespace )
{
	eval( "var namespaceExist = typeof(" + namespace + ")" );
	if ( namespaceExist == 'undefined' )
	{
		var url = namespace.trim();
		url = url.replace( /\./g, "/" ) + ".js";
		
		SmitearWebGL._importFile( url );
	}
}
// end namespace

$import( "SmitearWebGL.Core.Error" );
$import( "SmitearWebGL.Core.Capacity" );
$import( "SmitearWebGL.Core.BaseClass" );
$import( "SmitearWebGL.Core.Math.Number" );
$import( "SmitearWebGL.Core.Math.BitFlags" );
$import( "SmitearWebGL.Core.Math.Color" );
$import( "SmitearWebGL.Core.Math.Quaternion" );
$import( "SmitearWebGL.Utils.Md5" );
$import( "SmitearWebGL.Utils.QuickSort" );
$import( "SmitearWebGL.Objects.Viewport" );

$import( "SmitearWebGL.Core.ResourcePool" );
$import( "SmitearWebGL.Resources.RenderSurface" );
$import( "SmitearWebGL.Resources.Texture" );
$import( "SmitearWebGL.Resources.Texture2D" );
$import( "SmitearWebGL.Resources.TextureCube" );
$import( "SmitearWebGL.Resources.Sampler" );
$import( "SmitearWebGL.Resources.SurfaceMaterial" );
$import( "SmitearWebGL.Resources.Buffer" );
$import( "SmitearWebGL.Resources.IndexBuffer" );
$import( "SmitearWebGL.Resources.VertexBuffer" );
$import( "SmitearWebGL.Resources.Bitmap" );
$import( "SmitearWebGL.Resources.Shader" );
$import( "SmitearWebGL.Resources.MaterialLayer" );
$import( "SmitearWebGL.Resources.FrameBufferObject" );

$import( "SmitearWebGL.Renderer.InternalRenderers" );
$import( "SmitearWebGL.Programs.InternalPrograms" );
$import( "SmitearWebGL.Resources.InternalSamplers" );